# 员工信息
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
from ..models import User
from django.core.paginator import Paginator
from django.db.models import Q
from datetime import datetime


def index(request, pIndex=1):
    """浏览信息"""
    umod = User.objects
    ulist = umod.filter(status__lt=9)
    # 获取并判断搜索条件
    mywhere = []
    kw = request.GET.get('keyword',None)
    if kw:
        ulist = ulist.filter(Q(username__contains=kw) | Q(nickname__contains=kw))# 模糊查询
        mywhere.append('keywprd='+kw)
    status = request.GET.get('status','')
    if status != '':
        ulist = ulist.filter(status=status)
        mywhere.append("status="+status)

    pIndex = int(pIndex)  # 执行分页操作
    page = Paginator(ulist, 5)  # 5条数据为分页
    maxpages = page.num_pages  # 得到页数
    if pIndex > maxpages:  # 判断当前页是否越界
        pIndex = maxpages
    if pIndex < 1:
        pIndex = 1
    list2 = page.page(pIndex)  # 获取当前页数据
    plist = page.page_range  # 获取页码列表信息
    context = {"userlist": list2, 'plist': plist, 'pIndex': pIndex, 'maxpages': maxpages, 'mywhere':mywhere}
    return render(request, "myadmin/user/index.html", context)


def add(request):
    """加载信息"""
    return render(request, "myadmin/user/add.html")


def insert(request):
    """添加信息"""
    try:
        ob = User()
        ob.username = request.POST['username']
        ob.nickname = request.POST['nickname']
        # 密码md5编码
        import hashlib,random
        md5 = hashlib.md5()
        n = random.randint(100000, 999999)
        s = request.POST['password']+str(n)# 表单中获取密码并添加干扰值
        md5.update(s.encode('utf-8'))# 将产生md5的字符串
        ob.password_hash = md5.hexdigest()# 获取md5值
        ob.password_salt = n
        ob.status = 1
        ob.create_at = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
        ob.update_at = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
        ob.save()
        context = {'info':"添加成功！"}
    except Exception as err:
        print(err)
        context = {'info':"添加失败！"}
    return render(request, "myadmin/info.html", context=context)


def delete(request, uid=0):
    """删除信息"""
    try:
        ob = User.objects.get(id=uid)
        ob.status = 9
        ob.create_at = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
        ob.update_at = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
        ob.save()
        context = {'info':"删除成功！"}
    except Exception as err:
        print(err)
        context = {'info':"删除失败！"}
    return render(request, "myadmin/info.html", context=context)


def edit(request, uid=0):
    """编辑信息"""
    try:
        ob = User.objects.get(id=uid)
        context = {'user': ob}
        return render(request, "myadmin/user/edit.html", context=context)
    except Exception as err:
        print(err)
        context = {'info': "没有找到要修改的信息！"}
        return render(request, "myadmin/info.html", context=context)


def update(request, uid=0):
    """更新信息"""
    try:
        ob = User.objects.get(id=uid)
        ob.status = request.POST['status']
        ob.nickname = request.POST['nickname']
        ob.update_at = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
        ob.save()
        context = {'info': "修改成功！"}
    except Exception as err:
        print(err)
        context = {'info': "修改失败！"}
    return render(request, "myadmin/info.html", context=context)
